﻿using DexComanda.Models;
using Dominio;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PDFManager
{
    public class PDF
    {
        private string path;
        private static PdfPTable table;
        private Document document;
        private PdfWriter writer;
        private FileStream fs;

        public PDF() 
        {
            path = @"C:\\Pedidos\\DEX001.pdf";
            
            fs = new FileStream(path, FileMode.Create);
            
            document = new Document(PageSize.A4, 25, 25, 25, 25);
            writer = PdfWriter.GetInstance(document, fs);

            document.AddAuthor("Digital Expert");
            document.AddCreator("DexComanda");
            document.Open();
        }

        public void Close() 
        {
            document.Close();
            writer.Close();
            fs.Close();
        }

        public void createTable() {
            table = new PdfPTable(3);
        }

        public void addTableToPdf()
        {
            document.Add(table);
        }

        public void generateTableHeader()
        {
            PdfPCell pdfHeader = new PdfPCell(new Phrase("DexComanda.Pedido.DEX001 gerado em 05/12/2013"));
            pdfHeader.Padding = 10;
            pdfHeader.Colspan = 5;
            pdfHeader.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right

            table.AddCell(pdfHeader);
        }

        public void generateTableLineItem(List<ItemPedido> items)
        {
            foreach (ItemPedido item in items)
            {

                PdfPCell cellCodProduto = new PdfPCell(new Phrase(item.CodProduto.ToString()));
                cellCodProduto.Padding = 5;
                cellCodProduto.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                table.AddCell(cellCodProduto);

                PdfPCell cellNomeProduto = new PdfPCell(new Phrase(item.NomeProduto));
                cellNomeProduto.Padding = 5;
                cellNomeProduto.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                table.AddCell(cellNomeProduto);

                PdfPCell cellQuantidade = new PdfPCell(new Phrase(item.Quantidade.ToString()));
                cellQuantidade.Padding = 5;
                cellQuantidade.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                table.AddCell(cellQuantidade);

                PdfPCell cellPrecoUnitario = new PdfPCell(new Phrase(item.PrecoUnitario.ToString()));
                cellPrecoUnitario.Padding = 5;
                cellPrecoUnitario.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                table.AddCell(cellPrecoUnitario);

                PdfPCell cellPrecoTotalItem = new PdfPCell(new Phrase(item.PrecoTotal.ToString()));
                cellPrecoTotalItem.Padding = 5;
                cellPrecoTotalItem.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                table.AddCell(cellPrecoTotalItem);

            }
        }
    }
}
